Salut !

> En parlant de boot, je me suis tjs demand comment il fonctionnait. En
> effet, la RAM est en 0 et le boot aussi en 0.
> En tant qu'lectronicien, je suppose que la calc boote par dfaut sur le
> premier secteur de la FLASH. Ensuite, je pense qu'elle copie la table de
> vecteurs en RAM et ptet quelques routines (trampoline). Puis, par une
> bascule, elle swappe la FLASH et la RAM pour que la RAM se retrouve en 0
> et la FLASH en ROM_base.
>
> C'est une technique extrment utilise en lectronique qd on souhaite
> faire du dveloppement. Par ex: on a un moniteur en EPROM qui vient
> charger du code en RAM, on fait un RESET et la RAM est intervertit avec
> l'EPROM. On excute maintenant le code en RAM. Au RESET, suivant, la
> situation s'inverse, on repart sur le moniteur.

Au signal RESET du processeur, le dcodeur d'adresse map la FlashROM  0x0
le temps que le processeur initialise SR et PC avec ce qu'il trouve dans 0x0
et 0x4 (qui sont donc en fait ROM_base + 0 et ROM_base + 4). Puis le
dcodeur replace immdiatement la FlashROM  ROM_base, et la RAM  0x0 (je
ne sais pas comment il dtermine ce moment, mais c'est en gros ce que mon
prof de structure des ordinateurs m'avait expliqu quand je lui avait pos
cette question).
Ainsi la RAM et la FlashROM se trouvent bien  leurs adresses finales
lorsque la premire instruction du boot est excute. Le swap n'est pas fait
par le boot lui-mme, il n'en a mme pas conscience. Et donc pas besoin de
trampoline non plus.

Puis trs grossirement :
Aprs toutes les tests et initialisations de l'hardware et des vecteurs
d'interruption, le boot regarde si (CertificateMemory + 2).w est nul. Si
c'est le cas, alors un AMS devrait bien tre install, et le boot recherche
le point d'entre du code du reset et y saute.
Si (CertificateMemory + 2).w est non nul (ce qui peut tre le cas si un
transfert d'AMS a t interrompu par exemple, puisque ce flag n'est remis 
0 qu'une fois l'AMS bien install), le boot continue son excution (et
affiche 'press I to install product code' pour permettre une rception
d'AMS).
En plus du test de CertificateMemory + 2, la combinaison Apps+ON est aussi
vrife, et lance la suite du boot de la mme manire que si
CertificateMemory + 2 tait non nul.

++

 Olivier Armand